package com.jingxuan.dto.request;

import java.time.LocalDateTime;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Data;

/**
 * 记录用户搜索行为的请求。
 */
@Data
public class RecordSearchBehaviorRequest {

    /** 用户ID */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /** 搜索关键词 */
    @NotBlank(message = "搜索关键词不能为空")
    private String keyword;

    /** 搜索时间，未提供时默认取当前时间 */
    private LocalDateTime timestamp;

    /** 点击的商品ID，可为空 */
    private String clickedProductId;

    /** 是否点击了搜索结果 */
    private Boolean clicked;

    /** 点击位置排名，从0开始 */
    @PositiveOrZero(message = "点击排名必须大于等于0")
    private Integer clickRank;
}
